﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Data;

namespace Cotizav.AccesoDatos
{
    public class Tipo_MarcaDAO
    {
        public int Registrar(Util.ContextoDB ctx, Entidades.Tipo_Marca selTipo_Marca)
        {
            SqlCommand cmd = new SqlCommand("USP_TIPO_MARCA_INSERT", ctx.GetConexion(), ctx.GetTx());
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@ID", 0).Direction = System.Data.ParameterDirection.Output;
            cmd.Parameters.AddWithValue("@IDTIPO", selTipo_Marca.IdTipo);
            cmd.Parameters.AddWithValue("@IDMARCA", selTipo_Marca.IdMarca);
            cmd.Parameters.AddWithValue("@ACTIVO", selTipo_Marca.Activo);
            cmd.Parameters.AddWithValue("@FECHAREGISTRO", selTipo_Marca.FechaRegistro ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@USUARIOREGISTRO", selTipo_Marca.UsuarioRegistro ?? (object)DBNull.Value);

            int result = cmd.ExecuteNonQuery();

            return result;
        }

        public List<Entidades.Tipo_Marca> Listar(Util.ContextoDB ctx)
        {
            SqlCommand cmd = new SqlCommand("select * from TIPO_MARCA", ctx.GetConexion(), ctx.GetTx());
            DataTable dtTipo_Marca = new DataTable();
            dtTipo_Marca.Load(cmd.ExecuteReader());

            List<Entidades.Tipo_Marca> lista = new List<Entidades.Tipo_Marca>();

            foreach (DataRow fila in dtTipo_Marca.Rows)
            {
                Entidades.Tipo_Marca tm = new Entidades.Tipo_Marca();

                tm.IdTipoMarca = Int32.Parse(fila["ID"].ToString());
                tm.IdTipo = Int32.Parse(fila["IDTIPO"].ToString());
                tm.IdMarca = Int32.Parse(fila["IDMARCA"].ToString());
                tm.Activo = Int32.Parse(fila["ACTIVO"].ToString());
                tm.FechaRegistro = !(fila["FECHAREGISTRO"] is DBNull) ? Convert.ToDateTime(fila["FECHAREGISTRO"].ToString()) : new Nullable<DateTime>();
                tm.FechaModificacion = !(fila["FECHAMODIFICACION"] is DBNull) ? Convert.ToDateTime(fila["FECHAMODIFICACION"].ToString()) : new Nullable<DateTime>();
                tm.UsuarioRegistro = fila["USUARIOREGISTRO"].ToString();
                tm.UsuarioModificacion = fila["USUARIOMODIFICACION"].ToString();

                lista.Add(tm);
            }

            return lista;
        }
    }
}
